<?php
/**
 * 定义User类用于访问用户数据
 */

/**
 *  User 类
 *  这个类包含六个属性：id, userType, username, email, pass, and dateAdded。
 *  类的六个属性与users表中的字段对应
 *  有四个方法
 *  - getId()
 *  - isAdmin()
 *  - canEditPage()
 *  - canCreatePage()
 */
class User {

	// 所有属性对应用users表，名称完全一致
	// 所有属性都是被保护的
	protected $id = null;
	protected $userType = null;	//四种类型：public/admin/author/guest
	protected $username = null;
	protected $email = null;
	protected $password = null;
	protected $dateAdded = null;

	// 读取当前用户ID的方法
	function getId() {
		return $this->id;
	}

	// 判断用户是否是管理员
	function isAdmin() {
		return ($this->userType == 'admin');
	}

	// 判断用户是否有权限编辑业面：管理员或者作者
	function canEditPage(Page $page) {
		return ($this->isAdmin() || ($this->id == $page->getCreatorId()));
	}

	// 检查用户是否有创建页面（发布文档）的权限：管理员或作者
	function canCreatePage() {
		return ($this->isAdmin() || ($this->userType == 'author'));
	}

} // End of User class.